#ifndef JEDNOSTKA
#define JEDNOSTKA

class jednostka
{
public:
///////////////////////////////////////////////////////////
	friend bool operator==(const int i,const  jednostka & o);
////////////////////////////////////////////////////polecenia
	bool umieBudowac(string co);
	//////////////////////////////////////////////
	bool atak(int cel);
	bool przejmij(int cel);
	bool pilnuj(int cel);
	bool zaladuj(int cel);
	bool odsysaj(int cel);
	bool napraw(int cel);
	bool reanimuj(int cel);


	bool zrobRakiete ();


	bool zbuduj(float3 pos, const UnitDef* unit);
	bool idz(float3 pos);
	bool patroluj(float3 pos);
	bool DGun(float3 pos);


	bool atakuj(float3 pos, float promien);
	bool reanimuj(float3 pos, float promien);
	bool odsysaj(float3 pos, float promien);
	bool przejmij(float3 pos, float promien);
	bool wyrownaj(float3 pos, float promien);
	bool zaladuj(float3 pos, float promien);
	bool wyladuj(float3 pos, float promien);

	bool maskowanie(bool on);
	bool wlaczWylacz(bool on);


	bool autoDes();
	bool trybStrzelania(int mode);
	////////////////////////////////////////////////////////////
//czesci skladowe
	IAICallback * cb; 
    TTAICore * G;

	const UnitDef * info;
	int mojId;
	int np;
	oddzial * mojOddzial;
	int poziomBuduje;
	int role;
	bool state;
	int wait;
	bool wBudowie;

//funkcje
	bool jednostka::czZyjesz();
	jednostka (int ident, const UnitDef * defin, int nrP);
	jednostka (){};
	~jednostka () {}

private:
	Command komendaPoz(int id,float3 pos, float promien = 0);
	Command komendaInt(int id,int number,int maxnum = 4999);


};
class wskje
{
public:
    static TTAICore * G;
	jednostka *wj;
	int nr;
	int ident;
	wskje(int i, int id) : nr(i), ident(id){wj=(G->M->ktoTo(id));};
	jednostka * operator->();
	jednostka * operator=(jednostka * j);
	bool operator==(wskje j);
};

#endif //JEDNOSTKA
